package com.gtq.uhome.mapper;

import com.gtq.uhome.vo.OrderVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface DistributionPortMapper {
    /**
     * 查询未派送的物流订单
     * @return 返回一个临时VO对象
     */
     List<OrderVo> selectUndelivered();

    /**
     * 通过站点名字查询物流订单
     * @param siteName 站点名字
     * @return 返回一结果集
     */
    List<OrderVo> selectUndeliveredBySite(String siteName);

    /**
     * 配送员抢单方法
     * @param courierId 配送员id
     * @param orderId 订单号
     * @param sendTime 派单时间
     * @return 返回影响行数
     */
    Integer setReceivingOrders(Integer courierId, String orderId, Date sendTime);

    /**
     * 查询派送员Id
     * @param courierId 配送员ID
     * @return 返回配送员ID
     */
    Integer selectCourierId(Integer courierId);

    /**
     * 更改配送员状态
     * @param courierId 配送员ID
     * @param courierState 配送员状态
     * @return 返回影响的行数
     */
    Integer updateCourierState(@Param("courierId") Integer courierId,@Param("courierState") String courierState);

    /**
     * 添加派送员状态
     * @param courierId 派送员id
     * @param courierState 派送员状态
     * @return 返回影响的行数
     */
    Integer insertCourierState(@Param("courierId") Integer courierId, @Param("courierState") String courierState);

    /**
     * 通过订单号查询派送员id
     * @return 返回派送员id
     */
    Integer selectCourierIdByOrderId(String orderId);

    /**
     * 查询站点
     * @return 返回站点名称
     */
    List<String> selectSiteName();

    /**
     * 查询派送员状态
     * @return 返回派送员状态
     */
    String selectCourierStatus(Integer courierId);


}
